home *** CD-ROM | disk | FTP | other *** search
/ Acorn User: China / Acorn User China CD-ROM (UK) (Disc A) / Acorn User China CD-ROM (UK) (Disc A).bin / DEMON / MISC / NETLITE2.ARC / NET / c / TCPCMD < prev    next >
Encoding:
Text File  |  1993-03-29  |  2.1 KB  |  95 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "dbox.h"
  4. #include "global.h"
  5. #include "timer.h"
  6. #include "mbuf.h"
  7. #include "netuser.h"
  8. #include "internet.h"
  9. #include "tcp.h"
  10. #include "cmdparse.h"
  11. #include "misc.h"
  12.  
  13. #define TCP_OK     0
  14. #define TCP_IRTT   1
  15. #define TCP_MSS    2
  16. #define TCP_WINDOW 3
  17.  
  18. static int doirtt(int, char **);
  19. static int domss(int, char **);
  20. static int dowindow(int, char **);
  21.  
  22. /* TCP connection states */
  23. char *tcpstates[] = {
  24.         "Closed",
  25.         "Listen",
  26.         "SYN sent",
  27.         "SYN received",
  28.         "Established",
  29.         "FIN wait 1",
  30.         "FIN wait 2",
  31.         "Close wait",
  32.         "Closing",
  33.         "Last ACK",
  34.         "Time wait"
  35. };
  36.  
  37. /* TCP closing reasons */
  38. char *reasons[] = {
  39.         "Normal",
  40.         "Reset",
  41.         "Timeout",
  42.         "ICMP"
  43. };
  44. /* TCP subcommand table */
  45. struct cmds tcpcmds[] = {
  46.         "irtt",   doirtt,   0, NULLCHAR, NULLCHAR,
  47.         "mss",    domss,    0, NULLCHAR, NULLCHAR,
  48.         "window", dowindow, 0, NULLCHAR, NULLCHAR,
  49.         NULLCHAR, NULLFP,   0, "tcp subcommands: irtt mss window", NULLCHAR,
  50. };
  51. int dotcp(int argc, char **argv)
  52. {
  53.         return subcmd(tcpcmds,argc,argv);
  54. }
  55. /* Set initial round trip time for new connections */
  56. static int doirtt(int argc, char **argv)
  57. {
  58.         if (argc > 1) tcp_irtt = atoi(argv[1]);
  59.         return 0;
  60. }
  61. /* Set default maximum segment size */
  62. static int domss(int argc, char **argv)
  63. {
  64.         if (argc > 1) tcp_mss = atoi(argv[1]);
  65.         return 0;
  66. }
  67. /* Set default window size */
  68. static int dowindow(int argc, char **argv)
  69. {
  70.         if (argc > 1) tcp_window = atoi(argv[1]);
  71.         return 0;
  72. }
  73. void tcp_parms(void)
  74. {
  75.         dbox d;
  76.  
  77.         if ((d = dbox_new("TCP_Parms")) == NULL)
  78.                 return;
  79.  
  80.         dbox_setnumeric(d, TCP_IRTT,   tcp_irtt);
  81.         dbox_setnumeric(d, TCP_MSS,    tcp_mss);
  82.         dbox_setnumeric(d, TCP_WINDOW, tcp_window);
  83.  
  84.         dbox_show(d);
  85.  
  86.         if (dbox_fillin(d) == TCP_OK)
  87.         {
  88.                tcp_irtt   = dbox_getnumeric(d, TCP_IRTT);
  89.                tcp_mss    = dbox_getnumeric(d, TCP_MSS);
  90.                tcp_window = dbox_getnumeric(d, TCP_WINDOW);
  91.         }
  92.  
  93.         dbox_dispose(&d);
  94. }
  95.